﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Linq;

namespace KTX.Data
{
    public partial class SinhVien : System.ComponentModel.IDataErrorInfo
    {
        public string GioiTinhText {
            get
            {
                return GioiTinh ? "Nữ" : "Nam";
            }
        }

        public string ThongTin
        {
            get
            {
                return this.MaSV + " - " + this.HoTen;
            }
        }
        public bool DangKyHopDong
        {
            get
            {
                return this.HopDong.Where(p => p.NgayKetThucHD > DateTime.Now).Any();
            }
        }
       public string Error
        {
            get
            {
                if (this.EntityState == System.Data.EntityState.Added || this.EntityState == System.Data.EntityState.Modified)
                {
                    StringBuilder sb = new StringBuilder();

                    if (!String.IsNullOrWhiteSpace(this["MaLop"]))
                        sb.AppendLine(this["MaLop"]);

                    if (!String.IsNullOrWhiteSpace(this["MaSV"]))
                        sb.AppendLine(this["MaSV"]);
                    
                    if (!String.IsNullOrWhiteSpace(this["MaDT"]))
                        sb.AppendLine(this["MaDT"]);

                    if (!String.IsNullOrWhiteSpace(this["HoTen"]))
                        sb.AppendLine(this["HoTen"]);

                    string errors = sb.ToString();
                    return !String.IsNullOrEmpty(errors) ? errors : String.Empty;
                }
                else
                {
                    return String.Empty;
                }
            }
        }

        public string this[string columnName]
        {
            get
            {
                if (this.EntityState == System.Data.EntityState.Added || this.EntityState == System.Data.EntityState.Modified)
                {
                    switch (columnName)
                    {
                        case "MaSV":
                            return String.IsNullOrWhiteSpace(this.MaSV) ? "Chưa nhập tên đối tượng!" : String.Empty;

                        case "MaLop":
                            return this.Lop==null ? "Chưa chọn lớp!" : String.Empty;
                        case "MaDT":
                            return this.DoiTuong==null ? "Chưa chọn đối tượng!" : String.Empty;

                        case "HoTen":
                            return String.IsNullOrWhiteSpace(this.HoTen) ? "Chưa nhập tên họ tên sinh viên!" : String.Empty;

                        default:
                            return String.Empty;
                    }
                }
                else
                {
                    return String.Empty;
                }
            }
        }
    }
}
